/*
 * File:   Donjons.h
 * Author: poitevjo
 *
 * Created on 24 novembre 2011, 15:57
 */

#ifndef DONJONS_H
#define	DONJONS_H

#include"Case.h"
#include"Salle.h"
#include "Couloir.h"
#include <vector>
#include <stdlib.h>
#include <time.h>


//symbole par default
#define SymFond '*'

//taile par default d'un donjons
#define Xdefault 150 //conseillé : 100
#define Ydefault 60  //conseillé : 40

//longueur min et max pour les salles créer aléatoirement
#define longXmin 10  //conseillé : 10
#define longYmin 5   //conseillé : 5
#define longXmax 20  //conseillé : 20
#define longYmax 10  //conseillé : 10




class Donjons {
private:

    int longueurx;
    int longueury;
    vector<Salle> Salles;
    vector<Case> Cases;
    vector<Couloir> Couloirs;
    Case c;
public:



    //Constructeur de la classe//
    Donjons(int longueurx=Xdefault,int longueury=Ydefault);//Constructeur de la classe//

    int getLargeur();
    int getHauteur();
    Case getCase(int i, int j);

    ///////////////////////////Methodes d'affichage/////////////////////////////////

    void Afficher();//Affiche le donjons avec tous ses elements//

    //////////////////////////Methodes d'ajout d'element////////////////////////////

    void AjouterSalle(Salle S);//Ajout Salle//
    void AjouterCouloir(Couloir C);//Ajout Couloir//

    ///////////////////////////////Methodes de generation///////////////////////////

    void Generer();//Generation du donjons a partir des element existant//
    void GenerationAleatoire(int nb);//Generation d'un nombre de salle choisi par l'utilisateur//
    void Clear();//Nettoyage de toute les cases composant le donjons//

    ////////////////////////////////Methodes de test/////////////////////////////

    void Menu();//Menu editeur du donjons//
    void Saisir();//Methode permettant de tester la creation manuel d'un donjons//

    //void Enregistrer();
    //void Charger();

};

#endif	/* DONJONS_H */

